package chapter_04_singleton.p1_lazy_singleton;

/**
 * Created by CharloYao on 2017/3/23.
 * 单例模式：懒汉模式
 * 线程安全，所有访问的效率降低；且每次获取实例都要判断；
 * 解决办法：双重检查加锁
 */
public class LazySingleton {
    //私有的构造方法
    private LazySingleton(){};

    //私有的静态对象，加载的时候不做初始化
    private static LazySingleton singleton = null;

    /**
     * 静态的工厂方法，返回此类的唯一实例
     * @return
     */
     public static synchronized LazySingleton getInstance(){
        if(singleton == null){
            singleton = new LazySingleton();
        }
        return singleton;
    }
}
